Repository navigation
Conversation
…rations css(a, b) composing classes whose styles the build knows, bound to css() in the file or exported by another module, merges their atoms per property, selector, breakpoint and layer, conditions included, instead of joining classes whose winner the stylesheet order picked. vanilla-extract style([...]) passes each composed style as its own argument, keeping a style composed again later. Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…asurable Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…JSX spreads win Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…led order and JSX element className Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…uate shouldForwardProp at build time Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ring Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #691 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
… and conditional styles Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…h Emotion Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ed parameters Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ead through namespaces Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…akes from the visitor Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…eclared after their use Refs #695, #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…nding Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…graphs Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #685, #694 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Resolve both module-declaration and regenerated snapshot conflicts; adapt the #756 source-evaluation test to #757 evaluate_located. Synchronize bun.lock workspace versions. Split shadowed require from global resolver diagnostics, preserve entry-ingress fallback, and adapt empty JSX styleOrder to located parse rejection. Both #756 and #757 must merge first. Refs #694, #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Contributor
Changepacks@devup-ui/wasm@1.0.83 → 1.0.84 - bindings/devup-ui-wasm/package.jsonPatch
@devup-ui/bun-plugin@1.0.22 → 1.0.23 - packages/bun-plugin/package.jsonPatch
@devup-ui/components@0.1.60 → 0.1.61 - packages/components/package.jsonPatch
@devup-ui/next-plugin@1.0.90 → 1.0.91 - packages/next-plugin/package.jsonPatch
@devup-ui/plugin-utils@1.0.17 → 1.0.18 - packages/plugin-utils/package.jsonPatch
@devup-ui/react@1.0.44 → 1.0.45 - packages/react/package.jsonPatch
@devup-ui/reset-css@1.0.31 → 1.0.32 - packages/reset-css/package.jsonPatch
@devup-ui/rsbuild-plugin@1.0.67 → 1.0.68 - packages/rsbuild-plugin/package.jsonPatch
@devup-ui/vite-plugin@1.0.73 → 1.0.74 - packages/vite-plugin/package.jsonPatch
@devup-ui/webpack-plugin@1.0.71 → 1.0.72 - packages/webpack-plugin/package.jsonPatch
|
Codecov Report✅ All modified and coverable lines are covered by tests.
... and 43 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Keep module-local object identity hazards independent of constant evaluation; preserve element CSS variables and attach originating hazard diagnostics to build-only style reads. Add explicit plain-data builtin policies, shallow-freeze proofs, scalar snapshot handling and regression coverage. Refs #694, #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Project only proven scalar values at eager style sites without restoring escaped aggregates or unsafe closures. Preserve independent child slots, primitive shallow copies and frozen own properties, and reject reassigned factory bindings in both static evaluation paths. Refs #694, #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Limit exemptions to compiled lexical APIs and proven scalar-read helpers, track shallow freeze return identity, and gate exact values behind direct and indirect eval barriers. Preserve immutable compiled aliases and add source-backed hazard, ordering and literal-proof coverage witnesses. Refs #694, #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Exercise semantic compiled, readonly, eval-cycle and freeze-return policies; narrow shallow-freeze ownership and pass typed call sites to remove impossible states without coverage exclusions. Initialize proof outputs together and preserve namespace uncertainty. Refs #694, #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Verify identity termination on a real function declaration and preserve frozen own scalars when an escaped reader captures the object. Refs #694, #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Keep snapshot safety independent of earliest diagnostic selection, enforce eval barriers throughout Boa dependency closures, and retain structured semantic consumer and factory-write origins. Refs #694, #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #694, #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
owjs3901
marked this pull request as ready for review
October 6, 2026 08:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #694 (G: 결정론), #695 (F: 상수 및 spread). #756과 #757을 모두 포함하는 브랜치이며, 두 PR이 모두 먼저 병합되어야 합니다.
요약
객체가 알 수 없는 코드로 전달되거나 변경된 뒤의 프로퍼티 읽기를 초기값으로 잘못 폴딩하는 문제를 수정합니다. 현재 head는
bdc9f1c5074e2b90ebf3a7da0257810c6e718dbc입니다. 이전 gate review의 scalar snapshot deferred hazard 조합, indirect eval helper global dependency, factory reassignment origin 문제는 수정했고 실제 WASM으로 재검증했습니다. 부족했던 2개 경로에 실제 parsed-source 회귀 4개를 추가한 최신 Linux CI37431379535는 모든 4개 job 및 Rust/Bun 100% 커버리지 통과입니다. 최종 독립 gate review도 APPROVE / HIGH, 남은 blocker 없음으로 통과했습니다. 런타임 스타일링은 추가하지 않으며 사용자의 PR 검토·병합을 기다립니다.병합 기준 커밋은
7391e11aebb604c8a73804ddf82b6301044e5f9f입니다. 테스트 모듈 충돌은 양쪽을 모두 유지했고,inline_imported_constants스냅샷은 테스트로 재생성하여 #757의CJS_DYNAMIC과 #756의 spread lowering을 함께 확인했습니다. #756 테스트의 이전 평가 호출은 #757의evaluate_located반환형으로 연결했습니다.shadowed
require테스트는 모듈 해석을 하지 않는 경우와 실제 globalrequire오류로 분리했습니다. 실제 오류는helper.ts:1:25, 소스 위치가 없는 요청의 ingress fallback은entry.tsx:2:23으로 검증합니다. 잘못된 빈 JSXstyleOrder={}는 위치 있는 파싱 오류로 검증하고, 정상 fixture는void 0을 사용합니다.bun install이 갱신한 11개 workspace 버전 메타데이터도 같은 병합 트리에 포함했습니다. #756과 #757 중 나중에 main에 병합하는 PR에도 이 통합 변경이 필요합니다.동작
수정 전 실제 WASM 프로브:
watch가made.p를 변경할 수 있는데도 초기값을 CSS로 고정하는 것이 문제입니다. 수정 후 같은 실제 WASM 프로브는 다음 오류를 냅니다.일반 요소의
<Box p={f()} />는 원래f()를 CSS 변수로 전달합니다. getter/coercion/callback이 없는 plain-data 인자에 한해JSON.stringify,String,Number,Object.keys,Object.freeze와 명시된 17개 console builtin을 read-only로 취급합니다. Shadowed/변경된 builtin, 사용자 메서드 이름만 같은 경우는 제외합니다.Object.freeze는 얕으므로 자신의 scalar slot만 보호하고 nested 객체는 보호하지 않습니다.새로 생기는 오류
객체 escape 또는 쓰기 이후 정확성을 증명할 수 없는 값을
css, styled 템플릿,globalCss,keyframes, compat/StyleX 등 요소에 런타임 값을 전달할 수 없는 API가 읽으면 위치 있는 빌드 오류가 발생합니다. Unknown call/메서드, alias/중첩 컨테이너 전달, captured write, assignment/update/delete,Object.assign/defineProperty계열, setter가 대상입니다. 소비 위치와 원래 binding/escape·쓰기 위치 및 코드, direct scalar/copy 전달·escape 전 freeze·변경 이동 방법을 보고합니다. 요소의 일반 스타일 값은 기존 CSS 변수 경로를 사용합니다.남는 한계
bba266d6에서 수정했고 exact-positive 22개를 모두 통과합니다.setTheme의 잘못된 compile-only 취급, shallow-freeze 반환 alias의 nested child 전달, direct eval의 lexical mutation 경로도 재현 후 수정했습니다. 아래 추가 프로브에서 수정 전·후를 확인합니다.검증
cargo fmt --all, Rust 1.99 clippy 및 workspace 테스트 통과: extractor 2708, CSS 530, sheet 148, WASM 42.apps/landing/dist/client병합 기준 비압축 CSS 61,850바이트, JS 693,559바이트, 172개 파일. 최종 수정 후 같은 조건에서 아래 수치와 비교했습니다.37367102468:vinext-rsc-css-e2e통과.publish,benchmark,landing-next-e2e는 runner를 할당받지 못하여 0개 단계 실행 후 취소되었습니다. GitHub Actions의 hosted-runner 할당 장애이며 코드 실패로 처리하지 않습니다. workflow 변경이나 반복 재실행 없이, 장애 복구 후 coordinator가 취소된 job을 재실행합니다.핵심 수정 검증
bdc9f1c5의 Linux Rust 커버리지는 100.00%, 15374/15374줄, Bun **5512 통과 / 0 실패 / 100%**입니다. gate 수정 직후 headba1fee2f의 15372/15374줄 (99.99%) 실패를 실제 회귀 4개로 해결했습니다. Windows hook 측정 97.74%, 21382/21877줄과 구분하며 coverage 제외·workflow 변경으로 통과시키지 않았습니다.37388610454, head59f2dce5: landing-next-e2e, vinext-rsc-css-e2e, benchmark 통과. publish는 실제 Rust 커버리지 99.85% (14948/14970, 22줄 부족)로 실패했습니다. 스타일 기능 실패나 외부 장애로 숨기지 않습니다.37391632758, headbba266d6: landing-next-e2e, vinext-rsc-css-e2e, benchmark 통과. publish의 당시 실제 Rust 커버리지 실패는 추가 회귀 및 typed 구조 개선으로 해결했으며 최신 CI 결과와 구분합니다.bdc9f1c5: publish / benchmark / landing-next-e2e / vinext-rsc-css-e2e 모두 SUCCESS, Codecov patch SUCCESS. Rust100%, Bun100%, preload race 회귀 6개, landing E2E 및 Codecov upload가 모두 통과했습니다. 이전 CI 37420224038, headba1fee2f의 실제 2줄 커버리지 실패도 기록하며 fresh gate 승인을 별도로 확인합니다.기존 테스트·스냅샷 출력 변경
mutations::tests::changes: 실제 Array identity가 증명되지 않은.map은 callback-element escape 대신 receiver call hazard로 분류합니다.mutations::tests::escapes: unknown.forEach/.mapreceiver hazard, 반환값·arrow capture의 holder 그래프를 기록합니다.mutations::tests::reads: plain-data가 아닌 builtin 인자와 사용자 receiver 메서드는 보수적으로 hazard를 기록합니다. plain console 사례의 정상 폴딩은 별도 17개 회귀 사례로 유지합니다.tests::test_changed_constants: 증거 사례가 class/padding:4px 대신 located error로 바뀌고, 기존 changed-value 오류에 origin 코드와 fix가 추가됩니다.tests::test_emotion_css_prop_reports_what_it_cannot_compile: 기존 mutation 오류에 origin 코드와 fix가 추가됩니다.tests::test_values_known_only_at_runtime: 기존 imported/changed-value 오류에 fix가 추가됩니다. 성공한 요소 출력은 그대로입니다.변경된 스냅샷은 위 테스트와 대응하는 6개뿐이며, 모두
.snap.new를 검토한 후assertion_line을 제거하여 수락했습니다. 추가 정책 수정에서mutations::scope_tests::a_local_named_like_a_style_api_is_not_one의 unknownf(a)를 포함한<Box>/<Devup.Box>두 사례는 mutation-count 0 → 1로 바뀝니다. 이는 원래의 잘못된 nested-call 예외를 거절하는 것이며 lexical shadowing 검증은 유지했습니다.mutations::tests::reads의 최종 변경은 nested JSX escape를 추가하고 잘못된 standalone freeze escape를 제거합니다.병합 기준 extractor 2708 → 현재 3149로 441개 회귀 사례가 추가되었습니다. cause-ordering, imported origin, plain builtin, getter/coercion/callback, helper grammar, immutable compiled aliases, shallow-freeze 반환/write/receiver, direct/indirect/shadowed eval 및 source-order 경계를 실제 parsed source로 검증합니다. 테스트 약화·삭제, coverage 제외 및 새로운 lint ignore는 없습니다.
Scalar 후속 수정
scalar 결과만 원래 source span에서 인라인하며 객체 전체나 closure에 새 실행 허용을 부여하지 않습니다. 모든 hazard, 원래 lexical binding 및 TDZ/source-readiness를 검사하여 mutable child와 shadowed/deferred/alias 경로는 계속 거절합니다. 정밀도 회귀 28개를 추가했습니다.
추가 재현한 factory 재할당도 차단했습니다.
let make=()=>({p:1}); make=()=>({p:5}); const made=make(); css({p:made.p})는 수정 전 잘못된padding:4px였고, 수정 후/src/factory-write.tsx:1:108의 located error입니다. syntax factory fast path와 Boa sparse-definition 경로 모두 semantic write를 거절하며 3개 회귀를 추가했습니다.추가 발견·수정한 출력
<Box p={watch(made)} />뒤의css({p:made.p})padding:4px/src/nested-call.tsx:1:111, 원인1:87의 made/watch 코드와 fix를 포함한 오류setTheme(made)에서 mutatingtoStringpadding:4px1:128, 원인1:107의 made/setTheme 코드와 fix를 포함한 오류alias=Object.freeze(made);watch(alias);made.child.ppadding:4px로 고정1:122, 원인1:100의 made/watch(alias) 코드와 fix를 포함한 오류eval('made.p=2');made.ppadding:4px1:86, 원인1:54의 made/eval 코드와 fix를 포함한 오류이 4개는 동일한 입력으로 public WASM을 비교했습니다. Direct eval은 실행하지 않고 lexical visibility와 source order를 반영하는 opaque barrier로 취급합니다. Indirect eval은 globals에만 영향을 주며 이후의 builtin identity proof를 무효화합니다.
Object.freeze는 같은 객체를 돌려주므로 alias의 escape도 원래 객체에 전달합니다. 기존 exact/frozen-own-scalar 및 read-only helper 사례는 유지했습니다.별도로 발견한 dynamic spacing의 bare numeric CSS 변수 단위/배율 문제는 E/output 작업으로 coordinator가 분리했고, 이 PR에서는 해당 emitter를 수정하지 않았습니다.
Gate에서 추가 확인한 3개 수정
가장 이른 진단 원인을 고르는 것과 scalar snapshot의 안전성을 증명하는 것을 분리하여, alias를 통해 도달하는 모든 eager/deferred hazard를 검사합니다. Boa helper closure의 transitive global read에도 동일한 eval barrier를 적용합니다. 재할당된 factory의 원래 semantic write를 소비 오류까지 전달하며 오류 문구에서 binding 이름을 추측하지 않습니다.
padding:4px, 요소의width:13pxcopied를 CSS 변수로 유지width:1px1:112, Math/eval 원인1:69오류1:108과 원래 make 재할당1:58, 코드·fix 포함 오류추가 28개 Rust 회귀와 실제 public WASM 프로브로 확인했습니다. 기존 98개 독립 프로브도 22 exact / 41 build-only error / 35 dynamic으로 모두 통과합니다. 마지막 test-only 커밋은 type-only 참조가 runtime hazard origin이 되지 않는 경우 2개와 imported scalar-copy의 foreign hazard 거절/CSS 변수 경로 2개를 추가합니다. 두 production guard를 임시로 우회하면 4개 모두 실패하고 복원하면 32개 focused 및 3875개 workspace 테스트가 통과하는 것으로 실제 회귀 검출력을 확인했습니다. 최신 Linux CI100%와 최종 fresh gate APPROVE까지 확인했습니다.
기존 실제 프로브 출력 변경
18개 중 변경된 11개를 아래에 전부 나열합니다. 나머지 7개는 compiled code/CSS/error가 동일합니다.
css()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from them독립 프로브 출력 변경
98개 중 code/CSS/error가 변경된 56개를 모두 나열합니다. 동일한 입력 소스를 비교했고, 기존 오류에 origin/fix가 추가된 변경도 포함합니다.
css()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usemade.widthat build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot use(()=>{const local=made;return local.width})()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themglobalCss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themkeyframes()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themglobalCss()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themstylex.create()cannot usef()at build time: its values must be literals, theme tokens or constants, or be computed from themcss()cannot usemadeat build time: its styles must be an object literal or a constant object, or be computed from constants